import vnode from './vnode.js';
import createElement from './createElemnet.js'
import patchVnode from './patchVnode.js'

export default function patch(oldVnode,newVnode){
	// 判断传入的第一个参数是dom节点还是虚拟节点
	if(oldVnode.sel=='' || oldVnode.sel == undefined){
		// 如果是dom节点就将它转化成虚拟节点，因为patch函数是对新旧的虚拟节点进行比较的
		oldVnode =vnode(oldVnode.tagName.toLowerCase(),{},[],undefined,oldVnode);
	}
	// 判断oldVnode和newVnode是不是同一个节点
	if (oldVnode.key==newVnode.key && oldVnode.sel == newVnode.sel) {
		console.log("是同一个节点");
		patchVnode(oldVnode,newVnode);
		
	}else{
		//不是同一个节点，暴力删除新的，插入旧的
		let newVnodeElm = createElement(newVonde);
		//插入到老节点之前
		if (oldVnode.elm.parentNode && newVnodeElm) {
			oldVnode.elm.parentNode.insertBefore(newVnodeElm,oldVnode.elm);
		}
		//删除老节点
		oldVnode.elm.parentNode.removeChild(oldVnode.elm);
	}
}